/**
 *设备管理
 */
//////// 点位管理

import request from '@/utils/request'

// 查询监测点位列表
/**
 * 请求参数:
 * query: {
 *   pointName: '', //点位名称
 *   lat: '', // 纬度
 *   lon: '', //经度
 *   altitude: '', // 高度
 *   isValid: '', // 1-启用，0-停用
 * }
 * 结果集:
 * {
 *	"total": 4, // 查到的结果条数
 *	"rows": [{
 *		"searchValue": null, // 搜索值
 *		"createBy": null, // 创建者
 *		"createTime": "2020-02-21 17:48:08", // 创建时间
 *		"updateBy": null, // 更新者
 *		"updateTime": null, // 更新时间
 *		"remark": null, // 备注
 *		"dataScope": null, // 数据权限
 *		"params": {}, // 请求参数
 *		"pointId": 2, //监测点位ID
 *		"pointName": "点位1", //点位名称
 *		"lat": 22.9421673, //纬度
 *		"lon": 108.3845291, // 经度
 *		"altitude": 0.0, //高度
 *		"isValid": 0, // 1-启用，0-停用
 *		"repairTimes": 0, // 设备维修次数
 *		"target": null // 所属目标
 *	}],
 *	"code": 200, // 状态码
 *	"msg": 0 // 返回信息
 *}
 */
export function listPoint(query) {
  return request({
    url: '/slope/point/list',
    method: 'get',
    params: query
  })
}

// 查询监测点位详细
/**
 * 请求参数：pointId //监测点位ID
 * 结果集
 * {
 *		"searchValue": null, // 搜索值
 *		"createBy": null, // 创建者
 *		"createTime": "2020-02-21 17:48:08", // 创建时间
 *		"updateBy": null, // 更新者
 *		"updateTime": null, // 更新时间
 *		"remark": null, // 备注
 *		"dataScope": null, // 数据权限
 *		"params": {}, // 请求参数
 *		"pointId": 2, //监测点位ID
 *		"pointName": "点位1", //点位名称
 *		"lat": 22.9421673, //纬度
 *		"lon": 108.3845291, // 经度
 *		"altitude": 0.0, //高度
 *		"isValid": 0, // 1-启用，0-停用
 *		"repairTimes": 0, // 设备维修次数
 *		"target": null // 所属目标
 * }
 */
export function getPoint(pointId) {
  return request({
    url: '/slope/point/' + pointId,
    method: 'get'
  })
}

// 新增监测点位
/**
 * 请求参数:
 * {
 *		"pointName": "点位1", //点位名称
 *		"lat": 22.9421673, //纬度
 *		"lon": 108.3845291, // 经度
 *		"altitude": 0.0, //高度
 *		"isValid": 0, // 1-启用，0-停用
 *		"repairTimes": 0, // 设备维修次数
 *		"target": null // 所属目标
 *	}
 *  返回参数：
 * {code: 200, msg:""}
 */
export function addPoint(data) {
  return request({
    url: '/slope/point',
    method: 'post',
    data: data
  })
}

// 修改监测点位
/**
 * 请求参数:
 * {
 *		"pointName": "点位1", //点位名称
 *		"lat": 22.9421673, //纬度
 *		"lon": 108.3845291, // 经度
 *		"altitude": 0.0, //高度
 *		"isValid": 0, // 1-启用，0-停用
 *		"repairTimes": 0, // 设备维修次数
 *		"target": null // 所属目标
 * }
 * 返回参数：
 * {code: 200, msg:""}
 */
export function updatePoint(data) {
  return request({
    url: '/slope/point/edit',
    method: 'post',
    data: data
  })
}

// 禁用，启用
/**
 * {
 *		"pointId": 2, //监测点位ID
 *		"isValid": 0, // 1-启用，0-停用
 * }
 * 返回参数：
 * {code: 200, msg:""}
 */
export function changeStatus(data) {
  return request({
    url: '/slope/point/changeStatus',
    method: 'post',
    params: data
  })
}

export function delPoint(data) {
  return request({
    url: '/slope/point/remove',
    method: 'post',
    params: data
  })
}



///////////  供应商管理
// 查询订阅人列表  (已对接完成)
/**
 *  请求参数:
 *  queryParams: {
 *    pageNum: 1,  // 当前页
 *    pageSize: 10,  // 一页显示多少条
 *    supplierName: undefined, // 供应商名字
 *    supplierRepo: undefined, //供应商负责人
 *  },
 *  结果集：
 *   {
 *   	"total": 5,
 *   	"rows": [{
 *   		 "searchValue": null, // 搜索值
 *		   "createBy": null, // 创建者
 *		   "createTime": "2020-02-21 17:48:08", // 创建时间
 *		   "updateBy": null, // 更新者
 *		   "updateTime": null, // 更新时间
 *		   "remark": null, // 备注
 *		   "dataScope": null, // 数据权限
 *		   "params": {}, // 请求参数
 *   		 "supplierId": 1,  // id
 *   		 "supplierName": "test", // 供应商名字
 *   		 "supplierDesc": null, // 供应商描述
 *   		 "supplierRepo": "test", // 供应商负责人
 *   		 "supplierPhone": "13596385274",  // 供应商联系方式
 *   		 "supplierRoughlyAddress": "内蒙古自治区 赤峰市 元宝山区 150000 150400 150403", // 供应商大致的地址
 *   		 "supplierDetailedAddress": "dafads2", // 供应商详细地址 补充说明
 *   		 "supplierUrl": "http://168.152.24.1", // 供应商网址
 *   		 "supplierSend": null // 供应商推送方式
 *   	}],
 *   	"code": 200,
 *   	"msg": 0
 *   }
 */
export function listSupplier(query) {
  return request({
    url: '/slope/supplier/list',
    method: 'get',
    params: query
  })
}

// 查询供应厂商详细
/**
 * 请求参数： 供应商id
 * 结果集:
 * {
 *   "searchValue": null, // 搜索值
 *	 "createBy": null, // 创建者
 *	 "createTime": "2020-02-21 17:48:08", // 创建时间
 *	 "updateBy": null, // 更新者
 *	 "updateTime": null, // 更新时间
 *	 "remark": null, // 备注
 *	 "dataScope": null, // 数据权限
 *	 "params": {}, // 请求参数
 *   "supplierId": 1,  // id
 *   "supplierName": "test", // 供应商名字
 *   "supplierDesc": null, // 供应商描述
 *   "supplierRepo": "test", // 供应商负责人
 *   "supplierPhone": "13596385274",  // 供应商联系方式
 *   "supplierRoughlyAddress": "内蒙古自治区 赤峰市 元宝山区 150000 150400 150403", // 供应商大致的地址
 *   "supplierDetailedAddress": "dafads2", // 供应商详细地址 补充说明
 *   "supplierUrl": "http://168.152.24.1", // 供应商网址
 *   "supplierSend": null // 供应商推送方式
 * }
 *
 */
export function getSupplier(supplierId) {
  return request({
    url: '/slope/supplier/' + supplierId,
    method: 'get'
  })
}

// 新增供应厂商
/**
 * 请求参数:
 * {
 *   "supplierName": "test", // 供应商名字
 *   "supplierDesc": null, // 供应商描述
 *   "supplierRepo": "test", // 供应商负责人
 *   "supplierPhone": "13596385274",  // 供应商联系方式
 *   "supplierRoughlyAddress": "内蒙古自治区 赤峰市 元宝山区 150000 150400 150403", // 供应商大致的地址
 *   "supplierDetailedAddress": "dafads2", // 供应商详细地址 补充说明
 *   "supplierUrl": "http://168.152.24.1", // 供应商网址
 *   "supplierSend": null // 供应商推送方式
 * }
 * 结果集:
 * {code: 200, msg:""}
 */
export function addSupplier(data) {
  return request({
    url: '/slope/supplier',
    method: 'post',
    data: data
  })
}

// // 修改供应厂商
// /**
//  * 请求参数:
//  * {
//  *   "supplierId": 1,  // id
//  *   "supplierName": "test", // 供应商名字
//  *   "supplierDesc": null, // 供应商描述
//  *   "supplierRepo": "test", // 供应商负责人
//  *   "supplierPhone": "13596385274",  // 供应商联系方式
//  *   "supplierRoughlyAddress": "内蒙古自治区 赤峰市 元宝山区 150000 150400 150403", // 供应商大致的地址
//  *   "supplierDetailedAddress": "dafads2", // 供应商详细地址 补充说明
//  *   "supplierUrl": "http://168.152.24.1", // 供应商网址
//  *   "supplierSend": null // 供应商推送方式
//  * }
//  * 结果集:
//  * {code: 200, msg:""}
//  */

// // 导出供应厂商
// /**
//   * 请求参数:
//  *  queryParams: {
//  *    pageNum: 1,  // 当前页
//  *    pageSize: 10,  // 一页显示多少条
//  *    supplierName: undefined, // 供应商名字
//  *    supplierRepo: undefined, //供应商负责人
//  *  },
//  */
// export function exportSupplier(query) {
//   return request({
//     url: '/slope/supplier/export',
//     method: 'get',
//     params: query
//   })
// }


///////// 传感器配置
// 查询
/**
 * 请求参数:
 * queryParams: {
 *   pageNum: 1,  //当前页
 *   pageSize: 10,  // 一页显示多少条
 *   itemName: undefined // 设备类型
 *   deviceType: undefined // 设备状态
 *   itemName: undefined  // 设备名称
 *   itemName: undefined  // 设备编号
 * }
 * 结果集:
 *
 * {
 * 	"total": 4,
 * 	"rows": [{
 * 		"sensorId": 1,  //传感器对象id
 * 		"imei": null,  // IMEI号
 * 		"sensorTypeId": 1, // 传感器类型id
 * 		"sensorType": {  // 传感器类型
 * 			"sensorTypeId": 1, // id
 * 			"typeName": "GNSS",  // 类型名称
 * 			"typeItems": null,  // 类型项
 * 			"typeParams": null  // 类型参数
 * 		},
 * 		"monitorDetail": "表面位移",  // 监测内容
 * 		"alterSensor": null,  // 新传感器
 * 		"deviceId": 2,  // 所属设备ID
 * 		"device": {  // 设备对象
 * 			"deviceId": 2,  // 设备对象id
 * 			"supplierId": 1,  // 供应商id
 * 			"supplier": {  // 供应厂商对象
 * 				"supplierId": 1,  // 供应厂商id
 * 				"supplierName": "test111",  // 供应厂商名字
 * 				"supplierDesc": null,  // 供应商描述
 * 				"supplierRepo": null,  // 供应商负责人
 * 				"supplierPhone": null,  // 供应商联系方式
 * 				"supplierRoughlyAddress": null,  // 供应商大致地址
 * 				"supplierDetailedAddress": null,  //  供应商详细地址描述
 * 				"supplierUrl": null, // 供应商网址
 * 				"supplierSend": null  // 供应商推送方式
 * 			},
 * 			"deviceType": 1,  // 设备类型(对应数据字典)
 * 			"deviceName": "gnss监测仪",  // 设备名称
 * 			"description": "测试",  // 设备描述
 * 			"number": "gnss111",  // 设备编号
 * 			"state": 0,  // 状态  0-离线，1-在线，2-维护，3-已更换
 * 			"isValid": 1,  // 0-启用，1-停用
 * 			"pointId": 2,  // 点位id
 * 			"point": {  // 点位
 * 				"pointId": 2,  // 点位id
 * 				"pointName": "点位123",  // 点位名称
 * 				"lat": 22.9421673,  // 纬度
 * 				"lon": 108.3845291,  // 经度
 * 				"altitude": 0.0,  // 高度
 * 				"isValid": 1,  // 1-启用，0-停用
 * 				"repairTimes": 0,  // 设备维修次数
 * 				"target": null  // 所属目标
 * 			},
 * 			"joinTime": "2020-02-24T17:50:08.000+0800",  // 设备接入时间
 * 			"onlineTime": "2020-02-24T17:50:10.000+0800",  // 设备最近上线时间
 * 			"imei": "4634"   // IMEI号
 * 		},
 * 		"baseParams": [{   // 基本参数
 *      "name": undefined, // 参数名称
 *      "description": undefined,  // 参数描述
 *      "value": undefined,  // 参数值
 *      "unit": undefined  // 参数单位
 *    }],
 * 		"monitorItems": [{  // 传感器监测项
 * 			"itemId": 1,  // id
 * 			"itemName": "X偏移",  //名称
 * 			"itemUnit": "mm",  // 单位
 * 			"itemValue": 20.0,  // 当前值
 * 			"valueTime": "2020-02-24T17:52:25.000+0800",  // 当前值上传时间
 * 			"sensorId": 1,  // 所属传感器ID
 * 			"sensor": null, // 所属传感器
 * 			"threshold1": 50.0,  // 阈值1
 * 			"threshold2": 80.0,  // 阈值2
 * 			"threshold3": 100.0,  // 阈值3
 * 			"keywords": "",  // 搜索关键字
 * 			"thresholdType": 0  // 阈值类型
 * 		}],
 * 		"statusOption": null,  // 启动选项
 * 		"deviceName": null,  // 设备名称
 * 		"deviceNumber": null, // 设备编号
 * 		"repairTimes": 2  // 修复次数
 * 	}],
 * 	"code": 200,
 * 	"msg": 0
 * }
 *
 * 如下这种不用管:
 *      "searchValue": null, // 搜索值
 *		  "createBy": null, // 创建者
 *		  "createTime": "2020-02-21 17:48:08", // 创建时间
 *		  "updateBy": null, // 更新者
 *		  "updateTime": null, // 更新时间
 *		  "remark": null, // 备注
 *		  "dataScope": null, // 数据权限
 *		  "params": {}, // 请求参数
 */
export function listSensorConfiguration(query) {
  return request({
    url: '/slope/sensor/list',
    method: 'get',
    params: query
  })
}

export function indexListSensorCon(query) {
  return request({
    url: '/slope/sensor/indexSensorList',
    method: 'get',
    params: query
  })
}
// 获取单个传感器参数
/**
 * 请求参数：sensorId: 1 //传感器对象id
 * 结果集： 和查询的结果集的rows里面数据一样
 */
export function getSensorConfiguration(sensorId) {
  return request({
    url: '/slope/sensor/' + sensorId,
    method: 'get'
  })
}
// // 新增传感器
// /**
//  * 请求参数： 获取单个传感器参数的结果集 剔掉sensorId
//  * 结果集: {code: 200, msg:""}
//  */
// export function addSensorConfiguration(data) {
//   return request({
//     url: '/slope/sensor',
//     method: 'post',
//     data: data
//   })
// }
// // 修改传感器
// /**
//  * 请求参数： 获取单个传感器参数的结果集
//  * 结果集: {code: 200, msg:""}
//  */
// export function updateSensor(data) {
//   return request({
//     url: '/slope/sensor/edit',
//     method: 'post',
//     data: data
//   })
// }
// 导出传感器
/**
 * 请求参数:
 * queryParams: {
 *   pageNum: 1,  //当前页
 *   pageSize: 10,  // 一页显示多少条
 *   itemName: undefined // 设备类型
 *   deviceType: undefined // 设备状态
 *   itemName: undefined  // 设备名称
 *   itemName: undefined  // 设备编号
 * }
 */
export function exportSensorConfiguration(query) {
  return request({
    url: '/slope/sensor/export',
    method: 'get',
    params: query
  })
}
/**
 * 改变传感器状态
 * @param {
 *     sensorId:1, 传感器id
 *     device:{
 *         isValid:1 是否启用  0启用 ，1停用
 *     }
 * }
 * 结果集: {code: 200, msg:""}
 */
export function sensorChangeStatus(data) {
  return request({
    url: '/slope/sensor/changeStatus',
    method: 'post',
    params: data
  })
}


/**
 * 传感器管理
 */

/**
 * 查询传感器列表
 * 请求参数:
 *  queryParams: {
 *    pageNum: 1,//当前页
      pageSize: 10,// 一页显示多少条
      sensorType: undefined,//传感器类型
      statusOption: undefined,//传感器状态
      deviceName: undefined,//传感器名称
      deviceNumber: undefined//传感器编号
 *  },
 */
export function listSensor(query) {
  return request({
    url: '/slope/sensor/listManage',
    method: 'get',
    params: query
  })
}

/**设备禁用启用*/
export function editDeviceState(data) {
  return request({
    url: '/slope/device/disable',
    method: 'post',
    data: data
  })
}

/**设备维护恢复启用*/
export function editDeviceState2(data) {
  return request({
    url: '/slope/device/editDeviceState',
    method: 'post',
    params: data
  })
}

export function changeIsValid(data) {
  return request({
    url: '/slope/device/disable',
    method: 'post',
    data: data
  })
}


export function handleMaintain(idArr) {
  return request({
    url: '/slope/device/handleMaintain?idArr='+idArr,
    method: 'get',
  })
}
export function handleStart(idArr) {
  return request({
    url: '/slope/device/handleStart?idArr='+idArr,
    method: 'get',
  })
}


/**
 * 维修记录查询
 * 请求参数：
 *  obj:{
 *      sensorTypeId //传感器类型
 *      deviceName //名称模糊查询
 *      deviceNumber //编号 模糊插叙
 *
 *  }
 */
// 查询设备维修记录列表
export function listRecord(query) {
  return request({
    url: '/slope/record/list',
    method: 'get',
    params: query
  })
}

/**
 * 导出设备维修记录
 * 请求参数 同维修记录查询
 */
export function exportBySensor(query) {
  return request({
    url: '/slope/record/exportBySensor',
    method: 'get',
    params: query
  })
}


/**
 * 其他设备
 * @param query
 * {
 *     pageNum: 1,
			 pageSize: 10,
			 deviceType: undefined, //设备类型
			 state: undefined,  //设备状态
			 deviceName: undefined,//设备名称 模糊查询
       number: undefined //设备编号 模糊查询
 * }
 */
// 查询其他设备列表
export function listOtherDevice(query) {
  return request({
    url: '/slope/device/listOtherDevice',
    method: 'get',
    params: query
  })
}

/**
 *  返回参数
 *
    {
     "msg": "操作成功",
       "code": 200,
       "data": [
         {
           "num": 1,     // 统计数量
           "state": 0   // 设备状态 0:正常 1:离线 2:维护
         },
         {
           "num": 1,
           "state": 1
         }
       ]
     }

 */
export function indexDeviceSum() {
  return request({
    url: '/slope/device/indexDeviceSum',
    method: 'get',
  })
}

// 查询设备详细
export function getDevice(deviceId) {
  return request({
    url: '/slope/device/' + deviceId,
    method: 'get'
  })
}

// 新增其他设备
export function addDevice(data) {
  return request({
    url: '/slope/device',
    method: 'post',
    data: data
  })
}

// 修改其他设备
export function updateDevice(data) {
  return request({
    url: '/slope/device/edit',
    method: 'post',
    data: data
  })
}

// 导出设备
export function exportDevice(query) {
  return request({
    url: '/slope/device/export',
    method: 'get',
    params: query
  })
}

// 导出其他设备
export function exportOtherDevice(query) {
  return request({
    url: '/slope/device/exportOtherDevice',
    method: 'get',
    params: query
  })
}

// 导入设备
export function importDevice(query) {
  return request({
    url: '/slope/device/importDevice',
    method: 'get',
    params: query
  })
}

// 下载设备模板
export function importTemplate(query) {
  return request({
    url: '/slope/device/importTemplate',
    method: 'get',
    params: query
  })
}

// 没有设置权限的点位列表
export function noRoleListPoint(query) {
  return request({
    url: '/slope/point/noRoleList',
    method: 'get',
    params: query
  })
}
